ESP8266 常见固件烧写失败原因和解决方法(乐鑫) | 您所在的位置:网站首页 › flash download tool 参数错误 › ESP8266 常见固件烧写失败原因和解决方法(乐鑫) |
简介在使用 ESP8266 进行开发时, 读者或多或少都能遇到固件烧写失败情况, 无论是官方提供的 windows 上 Flash 下载工具, 还是 SDK 中提供的 esptool.py.下面笔者提供几种常见的烧写失败的原因和对应解决方法. 原因一: ESP8266 不在 UART boot请通过 UART0 查看 ESP8266 上电打印: ets Jan 8 2013,rst cause:1, boot mode:(1,n)1UART boot 对应 boot mode 第一参数为 1, 此值由 [GPIO15, GPIO0, GPIO2] 决定.即 GPIO15 和 GPIO0 低电平, GPIO2 高电平.boot mode 第一参数不为 1, 即不在烧写模式, 将无法烧写成功.更加详细说明参考: ESP8266 基础篇: 启动时 rst cause 和 boot mode 参考解决办法:不同模组/不同开发板解决方法不一而足, 但万变不离其宗, 即确保:GPIO15 和 GPIO0 低电平, GPIO2 高电平 例如: ESP-Launcher 开发板, 需将 IO0 开关拨到 L 侧, CH_EN 开关拨到 H 侧.有些开发板需按住 BOOT 按钮不放, 再短按 RST 按钮松开, 再松开 BOOT 按钮.而后续的 ESP8266-DevKitC 则无需用户关心此问题. 原因二: 供压问题常见供压问题如下: 供压不稳供压过高供压不足参考解决办法:即最终确保模组 VCC(3V3) 和 GND 电压稳定在 3.3V.通常可以使用独立供电的 HUB 来确保供压问题. 原因三: 串口配置错误某些读者刚入门 Linux 或对 Windows /MacOS了解不深, 可能未配置对串口就开始烧写, 而导致烧写失败.通常, 开发板或模组通过 USB 插到 PC 上, 不同平台对应不同烧写口, 可以使用如下命令查看: Linux: ls /dev/ttyUSB*MacOS: ls /dev/tty.*Windows: 计算机 -> 管理 -> 设备管理器 -> 端口 (COM 和 LPT)参考解决办法:Linux 和 MacOS 用户: 通过在 make menuconfig -> Serial flasher config -> Default serial port 中配置对烧写口, 重新编译烧写.Windows 用户: 在 Flash 下载工具 中通过 COM 口配置原因四: 串口无写权限某些读者可能通过虚拟机安装了 Linux 系统或 MacOS, 或某些权限管理较为严格的系统(某些公司管控 USB 设备), 经常串口无写权限, 需要用户手动去提升串口权限. 参考解决办法: sudo chmod 777 /dev/ttyUSB*1其他非 Linux 平台类似. 原因五: 波特率配置过高烧写速度受硬件影响, 在初步烧写失败情况下, 因降低烧写波特率. 参考解决办法:make menuconfig -> Serial flasher config -> Default baud rate 配置为 115200其他非 Linux 平台类似. 原因六: Flash SPI mode/speed 配置错误ESP8266 芯片和固件本身支持: Flash SPI mode: QIO, QOUT, DIO, DOUTESP8266 芯片和固件本身支持 Flash SPI speed: 80MHz, 40MHz, 26.7MHz, 20MHz但某些模组厂商, 基于 ESP8266 开发模组/开发板, 因成本或其他考虑, 未选型支持以上功能的 Flash, 导致某些读者使用此类型模组或开发板时需考虑此配置. 参考解决办法:通常选择 QIO, 烧写失败时切换到 DIO, 切换方法:make menuconfig -> Serial flasher config -> Flash SPI mode 切换 SPI modemake menuconfig -> Serial flasher config -> Flash SPI speed 切换 SPI speed 其他非 Linux 平台类似. 原因七: 使用非官方烧写工具某些读者可能基于其他公司的 第三方工具/IDE进行二次开发甚至更下游开发.如遇到烧写失败情况, 也可能是 第三方工具/IDE 本身问题. 如下截图所示, 某博客写到: 初步来看, 应是第三方工具在烧写模式时, 未对 [GPIO15, GPIO0, GPIO2] 电平做出较为优雅的配置, 导致需重新插拔进行烧写. 参考解决办法:建议使用官方提供的 windows 上 Flash 下载工具, 或 SDK 中提供的 make flash 进行烧写固件. 原因八: 模组 TX RX GND 接线错误开发板通常不存在此类情况, 模组需考虑此种情况. 模组接线错误: TX, RX, GND 未接到对应 RXD, TXD, GND 或其他接线错误参考解决办法:根据官方 datasheet 重新布线. 原因九: 其他原因往往, 电脑或个人原因, 或多或少偶尔遇到一些奇怪的烧写错误原因, 这里记录一下, 供读者参考: ESP8266 固件烧写到 ESP32 上其他参考解决办法重启电脑换个 USB线/USB转TTL换个 模组/开发板使用官方 SDK 和 release 版本进行烧写测试向我们提 issues————————————————版权声明:本文为CSDN博主「乐鑫科技 Espressif」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/espressif/article/details/102650210 |
CopyRight 2018-2019 实验室设备网 版权所有 |